package com.tbgov.config;

import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * @author 1st
 */
@Configuration
public class OpenApiConfig {

    @Bean
    public OpenAPI customOpenApi() {
        // 定义 token 请求头的安全配置
        SecurityScheme securityScheme = new SecurityScheme()
                .type(SecurityScheme.Type.APIKEY)   // 使用 API Key 类型的认证
                .in(SecurityScheme.In.HEADER)       // 放置在请求头中
                .name("token")                      // 设置请求头的名称为 token
                .bearerFormat("JWT");               // 可以设置为 JWT 格式，虽然这里是 API Key

        return new OpenAPI()
                .info(new Info().title("天宝政务文档").version("1.0.0"))
                .components(new Components().addSecuritySchemes("tokenAuth", securityScheme))  // 注册 token 请求头
                .addSecurityItem(new SecurityRequirement().addList("tokenAuth"));  // 添加 token 认证要求
    }
}
